home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Plus Special 22
/
AMIGAplus Sonderheft 22 (2000)(Falke)(DE)(Track 1 of 4)[!].iso
/
Vollversion
/
BankManager Version 1.6
/
BankManager
/
POSTBANK.MPL
< prev
Wrap
Text File
|
1999-11-08
|
20KB
|
1,200 lines
'
' Bankkommunikationsskript für POSTBANK.
'
' Erste Erstellung: 01.07.1993
' Letzte Änderung : 14.12.1998
' Autor: Christian Kaben
'
LISTFILE$ := "BankManager:LISTFILE.PBK"
EINUEB$ := "BankManager:EINUEB"
SAMUEB$ := "BankManager:SAMUEB"
SAMLST$ := "BankManager:SAMLST"
EINUEBE$ := "BankManager:EINUEBE"
SAMUEBE$ := "BankManager:SAMUEBE"
SAMLSTE$ := "BankManager:SAMLSTE"
KSTAND$ := "BankManager:KTOSTAND.PBK"
AUSZUG$ := "BankManager:AUSZUG.PBK"
UEBEXTENSION$ := ".PBK"
'Maximale Länge von Empfänger- und Textfeldern.
MAX_EM_LEN:=27
MAX_TX_LEN:=27
open #1,LISTFILE$,"r"
'Version
INPUT$:=input$ #1
'Einzelüberweisung
INPUT$:=input$ #1
EINUEB := val(INPUT$)
'überweisung
INPUT$:=input$ #1
'überweisung
INPUT$:=input$ #1
'überweisung
INPUT$:=input$ #1
'überweisung
INPUT$:=input$ #1
'Sammelüberweisung
INPUT$:=input$ #1
SAMUEB := val(INPUT$)
'Sammellastschrift
INPUT$:=input$ #1
SAMLAS := val(INPUT$)
'Kontoauszüge holen?
INPUT$:=input$ #1
AUSZUG := val(INPUT$)
'Datum letzter Kontoauszug
INPUT$:=input$ #1
LAUSZUG$ := INPUT$
'Kontostand abfragen?
INPUT$:=input$ #1
STAND := val(INPUT$)
'PIN
INPUT$:=input$ #1
PIN$ := INPUT$
'Startseite
INPUT$:=input$ #1
STARTSEITE$ := INPUT$
'Kontonummer
INPUT$:=input$ #1
KONTONR$ := INPUT$
'Kennwort 1
INPUT$:=input$ #1
'Kennwort 2
INPUT$:=input$ #1
'Kennwort 3
INPUT$:=input$ #1
'Kennwort 4
INPUT$:=input$ #1
'Einzelüberweisung EURO
INPUT$:=input$ #1
EINUEBE := val(INPUT$)
'Sammelüberweisung EURO
INPUT$:=input$ #1
SAMUEBE := val(INPUT$)
'Sammellastschrift EURO
INPUT$:=input$ #1
SAMLASE := val(INPUT$)
close #1
if(STARTSEITE$ <> "")
' Erst einmal auf die Nullseite springen. Damit
' verlasse ich ggf. auch einen ER (normalerweise).
send(ini$+"0"+ter$)
wait(1,0,0,30000)
' Bankrechner aufrufen.
send(ini$+STARTSEITE$+ter$)
wait(1,0,0,30000)
send(KONTONR$)
if(len(KONTONR$) < 10)
send(ter$)
endif
wait(1,0,0,30000)
send(PIN$)
wait(1,0,0,30000)
send("10")
wait(1,0,0,30000)
send("19")
wait(1,0,0,30000)
ZEILE$ := line$(24)
' Prüfung auf fehlgeschlagenen Versuch.
if((left$(ZEILE$,1) <> "") and (left$(ZEILE$,1) <> " "))
split(2)
print "Zugang fehlgeschlagen!"
sleep(5000)
split(0)
goto ENDE:
endif
send("0")
wait(1,0,0,30000)
endif
if(STAND > 0)
gosub KTOSTAND:
endif
MAXUEB := EINUEB
if(MAXUEB > 0)
gosub EINUEB:
endif
MAXUEB := EINUEBE
if(MAXUEB > 0)
gosub EINUEBE:
endif
MAXUEB := SAMUEB
if(MAXUEB > 0)
gosub SAMUEB:
endif
MAXUEB := SAMUEBE
if(MAXUEB > 0)
gosub SAMUEBE:
endif
MAXUEB := SAMLAS
if(MAXUEB > 0)
gosub SAMLAS:
endif
MAXUEB := SAMLASE
if(MAXUEB > 0)
gosub SAMLASE:
endif
if(AUSZUG > 0)
gosub UMSAETZE:
endif
ENDE:
end
'
' K O N T O S T A N D
'
KTOSTAND:
' Kontostandmaske aufrufen.
send("10")
wait(1,0,0,30000)
DATUM$ := ""
ZEIT$ := ""
STAND$ := ""
STANDE$ := ""
' Datum und Uhrzeit auslesen
LINE$ := line$(8)
if(len(LINE$) > 9)
LINE$ := mid$(LINE$,10,40)
endif
if(len(LINE$) = 0)
return
endif
while(left$(LINE$,1) = " ")
LINE$ := mid$(LINE$,2,40)
wend
if(len(LINE$) = 0)
return
endif
while(left$(LINE$,1) <> " ")
LINE$ := mid$(LINE$,2,40)
wend
if(len(LINE$) = 0)
return
endif
while(left$(LINE$,1) = " ")
LINE$ := mid$(LINE$,2,40)
wend
if(len(LINE$) = 0)
return
endif
while(left$(LINE$,1) <> " ")
DATUM$ := DATUM$ + left$(LINE$,1)
LINE$ := mid$(LINE$,2,40)
wend
if(len(LINE$) = 0)
return
endif
while(left$(LINE$,1) = " ")
LINE$ := mid$(LINE$,2,40)
wend
if(len(LINE$) = 0)
return
endif
while(left$(LINE$,1) <> " ")
ZEIT$ := ZEIT$ + left$(LINE$,1)
LINE$ := mid$(LINE$,2,40)
wend
' Betrag DM auslesen
LINE$ := line$(10)
if(len(LINE$) > 9)
LINE$ := mid$(LINE$,11,40)
endif
if(len(LINE$) = 0)
return
endif
while(left$(LINE$,1) = " ")
LINE$ := mid$(LINE$,2,40)
wend
if(len(LINE$) = 0)
return
endif
while(left$(LINE$,1) <> " ")
STAND$ := STAND$ + left$(LINE$,1)
LINE$ := mid$(LINE$,2,40)
wend
' Betrag EURO auslesen
LINE$ := line$(11)
if(len(LINE$) > 9)
LINE$ := mid$(LINE$,11,40)
endif
if(len(LINE$) = 0)
return
endif
while(left$(LINE$,1) = " ")
LINE$ := mid$(LINE$,2,40)
wend
if(len(LINE$) = 0)
return
endif
while(left$(LINE$,1) <> " ")
STANDE$ := STANDE$ + left$(LINE$,1)
LINE$ := mid$(LINE$,2,40)
wend
open #1,KSTAND$,"w"
print #1,DATUM$
print #1,ZEIT$
print #1,STAND$
print #1,STANDE$
close #1
send("0")
wait(1,0,0,30000)
return
'
' E I N Z E L Ü B E R W E I S U N G E N
'
EINUEB:
' Test, ob nicht schon alle versandt worden sind.
COUNTMAX := MAXUEB
COUNTNAME$ := EINUEB$
gosub COUNTOPEN:
if(COUNTMAX = 0)
return
endif
ISEURO := 0
ANWFILENAME$ := EINUEB$
gosub EUEB:
return
EINUEBE:
' Test, ob nicht schon alle versandt worden sind.
COUNTMAX := MAXUEB
COUNTNAME$ := EINUEBE$
gosub COUNTOPEN:
if(COUNTMAX = 0)
return
endif
ISEURO := 1
ANWFILENAME$ := EINUEBE$
gosub EUEB:
return
EUEB:
' Überweisungseingabemaske aufrufen.
send("20")
wait(1,0,0,30000)
TAN$ := ""
UNTERSCHRIFT$ := ""
BASELINE := 6
BASECOL := 10
SESENDCURR := 1
' Ab hier Einspielen der Datensätze.
for i:=1 to MAXUEB
' TAN als leer initialisieren, da jeder Auftrag ja seine
' eigene TAN hat (im Gegensatz zu den Sammlern).
TAN$ := ""
GLOBALERROR := 0
FILENAME$ := ANWFILENAME$+str$(i-1)+UEBEXTENSION$
' Einspielen des aktuellen Datensatzes.
gosub SENDENTRY:
'split(10)
'print GLOBALERROR
'sleep(5000)
'split(0)
if(GLOBALERROR = -1)
'split(10)
'print "NEXT erkannt"
'sleep(3000)
'split(0)
goto LABEL11:
next
endif
' Auftragsbestätigung j/n
send(ter$)
' Als Abrufüberweisung speichern j/n
send(ter$)
wait(1,0,0,30000)
' Termin (Tag, Monat, Jahr)
send(ter$)
send(ter$)
send(ter$)
wait(1,0,0,30000)
LABEL11:
' Vergleich des aktuellen Datensatzes mit der Anzeige seitens Btx.
GLOBALERROR := 0
FILENAME$ := ANWFILENAME$+str$(i-1)+UEBEXTENSION$
'split(5)
'print "1"
'sleep(1000)
'split(0)
loop11:
gosub CHECK:
if(GLOBALERROR=-1)
goto LABEL12:
next
endif
'split(5)
'print "2"
'sleep(1000)
'split(0)
if(GLOBALERROR <> 0)
' Anzeige weicht vom Eingespielten ab. Also erneut einspielen.
send("1")
wait(1,0,0,30000)
gosub SENDENTRY:
if(GLOBALERROR=-1)
goto LABEL12:
next
endif
goto loop11:
endif
'split(5)
'print "3"
'sleep(1000)
'split(0)
if(TAN$ = "")
split(5)
print "Keine TAN vorhanden !!!"
sleep(10000)
split(0)
goto ENDE:
endif
send(TAN$)
wait(1,0,0,30000)
' Erfolgreich eingespielten Datensatz als erledigt markieren.
gosub DELETEENTRY:
if(i < MAXUEB)
' Es kommen noch mehr Überweisungen.
send(ter$)
else
send("0")
endif
wait(1,0,0,30000)
LABEL12:
next
return
'
' S A M M E L Ü B E R W E I S U N G E N
'
SAMUEB:
' Test, ob nicht schon alle versandt worden sind.
COUNTMAX := 1
COUNTNAME$ := SAMUEB$
gosub COUNTOPEN:
if(COUNTMAX = 0)
return
endif
ISEURO := 0
ANWFILENAME$ := SAMUEB$
gosub SUEB:
return
SAMUEBE:
' Test, ob nicht schon alle versandt worden sind.
COUNTMAX := 1
COUNTNAME$ := SAMUEBE$
gosub COUNTOPEN:
if(COUNTMAX = 0)
return
endif
ISEURO := 1
ANWFILENAME$ := SAMUEBE$
gosub SUEB:
return
SUEB:
send("21")
wait(1,0,0,30000)
gosub CLEAROLD:
send("90")
wait(1,0,0,30000)
if(errno<>0)
wait(1,0,0,30000)
endif
LINE$ := line$(7)
LSTNR$ := mid$(LINE$,15,6)
'split(10)
'print LSTNR$
'sleep(2000)
'split(0)
TAN$ := ""
UNTERSCHRIFT$ := ""
BASELINE := 8
BASECOL := 8
SESENDCURR := 1
' Ab hier Einspielen der Datensätze.
for i:=1 to MAXUEB
GLOBALERROR := 0
FILENAME$ := ANWFILENAME$+str$(i-1)+UEBEXTENSION$
gosub SENDENTRY:
SESENDCURR := 0
'split(10)
'print GLOBALERROR
'sleep(5000)
'split(0)
if(GLOBALERROR=-1)
'split(10)
'print "NEXT erkannt"
'sleep(3000)
'split(0)
goto LABEL21:
next
endif
if(i < MAXUEB)
' Es folgen noch weitere Überweisungen.
send(ter$)
else
' Es folgen keine weitere Überweisungen.
send("9")
endif
wait(1,0,0,30000)
if(cur_y = (BASELINE - 1))
BS := BASELINE - 1
PR$ := line$(BS)
PR$ := mid$(PR$,34,3)
if(len(PR$) > 0)
if(PR$ <> " ")
' Dann ist der Auftrag fehlerhaft, da seitens
' der Bank die verwendete Kombination BLZ und
' Kontonummer abgelehnt wurde.
split(5)
print "Auftrag fehlerhaft!"
sleep(10000)
split(0)
' Wenn ich dann BLZ und Kontonummer noch einmal
' schlicht bestätige, wird das dann trotzdem
' angenommen. Ausnahme bildet dann nur eine
' falsche Kontoverbindung bei einem Postbankkonto